package main

import (
	"fmt"
	"math/rand"
	"strconv"
	"strings"
	"time"
)

//题目
// 1. 创建一个初始长度为0、容量为10的int型切片，调用rand.Intn(128)100次，往切片里面添加100个元素，利用map统计该切片里有多少个互不相同的元素。
// 2. 实现一个函数func arr2string(arr []int) string，比如输入[]int{2,4,6}，返回“2 4 6”。输入的切片可能很短，也可能很长。

func Question1() {
	sl := make([]int, 0, 10)
	mp := make(map[int]bool, 100)

	rand.Seed(time.Now().Unix())

	for i := 0; i < 100; i++ {
		temp := rand.Intn(128)
		sl = append(sl, temp)
	}

	for _, n := range sl {
		mp[n] = true
	}

	fmt.Printf("互不相同的元素有%d个\n", len(mp))
}

func Question2(arr []int) string {
	if len(arr) == 0 {
		return ""
	}

	str := strings.Builder{}

	for _, i := range arr {
		str.WriteString(strconv.Itoa(i))
		str.WriteString(" ")
	}

	result := strings.Trim(str.String(), " ")

	return result
}

func main() {
	Question1()
	res := Question2([]int{1, 2, 3, 4, 5, 6})
	fmt.Println(res)
}
